﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Crosland.Automotriz.Facade.Interface;
using Crosland.Automotriz.Facade.Facade;
using Crosland.Automotriz.Entidad;
using Crosland.Automotriz.Logic.Funciones;
using DevExpress.Web.ASPxGridView;

namespace Crosland.Automotriz.Web.Vehiculos
{
    public partial class wFrmProduccionArmado :BaseForm
    {
		iFacadeProduccionArmadoVehiculos BI_PRODUCCION_VEHI_ARMADO = new FacadeProduccionArmadoVehiculos();

		protected override void Inicializar()
		{
			CargarEstados();
			Centros();
            cboCentro.SelectedIndex = 0;
            CargarEquipos();
			cboEstado.SelectedIndex = 0;
			cboEquipo.SelectedIndex = 0;
			BuscarVehiculosArmados();
		}

		protected void CargarEstados()
		{

			cboEstado.DataSource = BI_PRODUCCION_VEHI_ARMADO.ListarEstadosArmado();
			cboEstado.TextField = "DES_CORTA";
			cboEstado.ValueField = "ID_GENERAL_DET";
			cboEstado.DataBind();

		}

		public void CargarEquipos()
		{
            int idCentro = Convert.ToInt32(cboCentro.Value);
			cboEquipo.DataSource = BI_PRODUCCION_VEHI_ARMADO.ListarEquipos("Armado",idCentro);
			cboEquipo.TextField = "NOMBRE_EQUIPO";
			cboEquipo.ValueField = "ID_OPE_MAE_EQUIPOS_CAB";
			cboEquipo.DataBind();
		}

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
			Response.Redirect("/Vehiculos/wFrmProduccionArmadoNuevo.aspx?id=97&sub=98");
        }

		protected void btnBuscar_Click(object sender, EventArgs e)
		{
			BuscarVehiculosArmados();
		}

		protected void BuscarVehiculosArmados()
		{

			List<T_LOG_VEHICULOS_ARMADOS> DatosVehiculos = new List<T_LOG_VEHICULOS_ARMADOS>();
			int idEstado=Convert.ToInt32(cboEstado.Value);
			int idCentro = Convert.ToInt32(cboCentro.Value);
			int idEquipo = Convert.ToInt32(cboEquipo.Value);

			DatosVehiculos = BI_PRODUCCION_VEHI_ARMADO.BuscarVehiculosArmados(idEstado,idCentro,idEquipo);

			dgvDatosArmados.DataSource = DatosVehiculos;
			dgvDatosArmados.DataBind();


		}

		protected void dgvDatosArmados_RowCommand(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e)
		{
			int id = Convert.ToInt32(e.CommandArgs.CommandArgument);

			Session["ID_ESTADO_VEHICULO_ARMADO"] = id;
			Session["Accion"] = e.CommandArgs.CommandName;

            if (e.CommandArgs.CommandName.ToString() == "Equipo")
            {
                gvEquipos.DataSource = BI_PRODUCCION_VEHI_ARMADO.EquiposDeArmado(id);
                gvEquipos.DataBind();
                popupEquipo.ShowOnPageLoad = true;
            }
            else
            {
                popupConfirmacion.ShowOnPageLoad = true;
            }
		}

		protected void btnSI_Click(object sender, EventArgs e)
		{
			int id = Convert.ToInt32(Session["ID_ESTADO_VEHICULO_ARMADO"]);
			string accion = Session["Accion"].ToString();

			if (accion == "Reiniciar")
			{
				if (BI_PRODUCCION_VEHI_ARMADO.ActualizarEstadoArmado(id, 137) == true)
				{
					BuscarVehiculosArmados();
				}
				else
				{
					lblMsj.Text = "Error al procesar la acción.";
					popupMsj.ShowOnPageLoad = true;
				}

			}
			else if (accion == "Terminar")
			{
               
                Boolean blVerificaGrabacion = false;
                blVerificaGrabacion = BI_PRODUCCION_VEHI_ARMADO.ActualizarEstadoArmado(id, 138);

                if (blVerificaGrabacion == true)
				{
					BuscarVehiculosArmados();
				}
				else
				{
					lblMsj.Text = "Error al procesar la acción.";
					popupMsj.ShowOnPageLoad = true;
				}

			}
			else if (accion == "Anular")
			{
				if (BI_PRODUCCION_VEHI_ARMADO.ActualizarEstadoArmado(id, 139) == true)
				{
					BuscarVehiculosArmados();
				}
				else
				{
					lblMsj.Text = "Error al procesar la acción.";
					popupMsj.ShowOnPageLoad = true;
				}

			}
		}

		protected void dgvDatosArmados_PageIndexChanged(object sender, EventArgs e)
		{
			BuscarVehiculosArmados();
		}

		protected void dgvDatosArmados_HtmlRowCreated(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e)
		{
			if (e.RowType != DevExpress.Web.ASPxGridView.GridViewRowType.Data) return;

			int indicador = Convert.ToInt32(cboEstado.Value);

			ImageButton imgReiniciar = dgvDatosArmados.FindRowCellTemplateControl(e.VisibleIndex, null, "btnReiniciar") as ImageButton;
			ImageButton imgTerminar = dgvDatosArmados.FindRowCellTemplateControl(e.VisibleIndex, null, "btnTerminar") as ImageButton;
			ImageButton imgAnular = dgvDatosArmados.FindRowCellTemplateControl(e.VisibleIndex, null, "btnAnular") as ImageButton;

			if (indicador == 137)
			{
				imgReiniciar.Visible = true;
				imgTerminar.Visible = true;
				imgAnular.Visible = true;
			}
			else if (indicador == 138)
			{
				imgReiniciar.Visible = false;
				imgTerminar.Visible = false;
				imgAnular.Visible = true;
			}
			else if (indicador == 139)
			{
				imgReiniciar.Visible = false;
				imgTerminar.Visible = false;
				imgAnular.Visible = false;
			}
			


		}

		public void Centros()
		{

			cboCentro.DataSource = BI_PRODUCCION_VEHI_ARMADO.ListarCentros();
			cboCentro.TextField = "DES_CENTRO";
			cboCentro.ValueField = "ID_CENTRO";
			cboCentro.DataBind();

		}

        protected void gvDetalleArmado_BeforePerformDataSelect(object sender, EventArgs e)
        {
            Session["ID_ARM_CAB"] = (sender as ASPxGridView).GetMasterRowKeyValue();
        }

    }
}